package com.bmps.springcloud.insuredmicroservice.repository.accept.master;


import com.bmps.springcloud.insuredmicroservice.model.accept.MessageModel;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author lyw
 * @date 2019/07/24
 */
@Repository
public interface InsuranceAcceptRepository {
    /**
     * 成功报文落地
     *
     * @param  message 落地信息对象
     * @return int
     * @throws Exception 异常
     */

    int insertMessageAccept(MessageModel message) throws Exception;

    /**
     * 请求报文和返回报文落地
     *
     * @param  contno 保单号
     * @param  request 请求报文
     * @param  response 返回报文
     * @return int
     * @throws Exception 异常
     */

    int insertAcceptRequestAndResponseMessage(@Param("contno") String contno, @Param("request") String request,
                                              @Param("response") String response) throws Exception;

    /**
     * 失败报文落地
     *
     * @param  message 落地信息对象
     * @return int
     */
    int insertMessageError(MessageModel message);

    /**
     * 获取系统支持的险种编码集合
     * @param codeType 数据字典类型
     * @return List<String>
     */
    List<String> getRiskCodeList(@Param("codeType") String codeType);
    /**
     * 是否存在以code为前缀的代理机构
     * @param code 数据字典类型
     * @return String
     */
    String  getAgentComByCode(@Param("code") String code);

    /**
     * 是否存在以code为前缀的代理机构
     * @param code 数据字典类型
     * @return String
     */
    String  getAgentCom(@Param("code") String code);

    /**
     * 更新pushflag
     * @author: Jacob(zlc)
     * @return String
     */
    void updateAcceptPushFlag(@Param("pushFlag") int pushFlag, @Param("contno") String contno, @Param("oldPushFlag") int oldPushFlag);

    @Select("SELECT `codename` FROM sys_dictionary WHERE `codetype` = 'activity' AND `code` = #{code}")
    String activityTime(@Param("code") String code);

}
